int a[3],b[3];a={1,2,3};b=a;有什么问题?为什么不能赋值?

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:06:33
main()

int a[3],b[3];
a={1,2,3};
b=a;

有什么问题?为什么不能赋值?

代码有两个错误:
1.数组想用{1,2,3}这样的方式只能放在数组声明的那句。要这样写:
int a[3] = {1,2,3};
int b[3];
如果先写了int a[3],b[3];,再初始化a就晚啦。

2.数组的赋值一般使用循环来完成,对于数组里面项目少的或者也可以手动来赋值,像这样:
b[0] = a[0];
b[1] = a[1];
b[2] = a[2];

b=a这个表达式是不允许的。a或者b都相当于一个常量指针,指向数组第一个元素,是不允许改变它们所指向的位置的。所以,不允许对a或者b赋值。

在C中数组(ARRAY)类型不能象你那样赋初值的,而且a和a[]也不等价。如果初始化的话.可以使用
static int a[]={1,2,3};
还有,数组也没有赋值语句。要用FOR完成

void main()
{
int a[3],b[3];
for(int i=0; i<3;i++)
{
a[i]=i+1;
b[i]=a[i];
}
}